﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sinacor.UI.Bovespa.Alocacao.Communication.Translator.ModelToDataContract
{
    public class ErroAlocacaoComitente
    {
        public Bovespa.Alocacao.ErroAlocacaoComitente.FiltroErroAlocacaoComitenteRequest ToFiltroErroAlocacaoComitente(Model.Parameter.FiltroErroAlocacaoComitente from)
        {
            Bovespa.Alocacao.ErroAlocacaoComitente.FiltroErroAlocacaoComitenteRequest to = new Bovespa.Alocacao.ErroAlocacaoComitente.FiltroErroAlocacaoComitenteRequest();

            to.ApelidoCliente = from.ApelidoCliente;
            to.CodigoNegociacao = from.CodigoNegociacao;
            to.DataPregao = from.DataPregao;
            if(from.Erro1 != null)
                to.Erro1 = ToErroAlocacao(from.Erro1);
            if (from.Erro2 != null)
                to.Erro2 = ToErroAlocacao(from.Erro2);
            if (from.Erro3 != null)
                to.Erro3 = ToErroAlocacao(from.Erro3);
            if (from.NaturezaOperacao.HasValue)
            {
                switch (from.NaturezaOperacao.Value)
                {
                    case Model.Enum.NaturezaOperacao.Compra:
                        to.NaturezaOperacao = Sinacor.UI.Bovespa.Alocacao.Communication.Bovespa.Alocacao.ErroAlocacaoComitente.NaturezaOperacao.Compra;
                        break;
                    case Model.Enum.NaturezaOperacao.CompraVenda:
                        to.NaturezaOperacao = Sinacor.UI.Bovespa.Alocacao.Communication.Bovespa.Alocacao.ErroAlocacaoComitente.NaturezaOperacao.CompraVenda;
                        break;
                    case Model.Enum.NaturezaOperacao.Venda:
                        to.NaturezaOperacao = Sinacor.UI.Bovespa.Alocacao.Communication.Bovespa.Alocacao.ErroAlocacaoComitente.NaturezaOperacao.Venda;
                        break;
                }
            }
            to.NumeroNegocio = from.NumeroNegocio;

            return to;
        }

        public Bovespa.Alocacao.ErroAlocacaoComitente.ErroAlocacao ToErroAlocacao(Model.ErroAlocacao from)
        {
            Bovespa.Alocacao.ErroAlocacaoComitente.ErroAlocacao to = new Bovespa.Alocacao.ErroAlocacaoComitente.ErroAlocacao();
            to.CodigoErro = from.CodigoErro;
            to.Descricao = from.Descricao;

            return to;
        }
    }
}
